/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package ProyectoBienestarUniversitarioComfenalcoCulturalis.src.java.mvc.dao;

/**
 *
 * @author pezcado
 */

import java.util.logging.Level;
import java.util.logging.Logger;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.SQLException;

public class WebModel extends Model implements HttpSessionBindingListener{

    /**
     * Inicializa la conexion a base de datos
     */
     public void init(ServletContext context)throws ServletException{
        // Configura la propiedad del controlador JDBC del  modelo
        // a partir de un valor de ambito de aplicacion del web.xml


        String jdbcDriver=context.getInitParameter("jdbcDriver");
        if(jdbcDriver==null)
            throw new ServletException ("Propiedad jdbcDriver no especificada");
        setJdbcDriver(jdbcDriver);
		//System.out.println("jdbcDriver es: "+jdbcDriver);

//************************************************
        String databaseURL=context.getInitParameter("databaseURL");
        if(databaseURL==null)
            throw new ServletException ("Propiedad databaseURL no especificada");
        setJdbcUrl(databaseURL);
            //System.out.println("databaseURL: "+databaseURL);

//**************************************************
        String databaseUser=context.getInitParameter("databaseUser");
        if (databaseUser == null)
        	databaseUser = "root";
        this.setUser(databaseUser);
            //System.out.println("databaseUser: "+databaseUser);

//**************************************************
        String databasePassword=context.getInitParameter("databasePassword");
        if (databasePassword == null)
        	 databasePassword = "1234";
        this.setPassword(databasePassword);
            //System.out.println("databasePassword: "+databasePassword);

//**************************************************
        String database=context.getInitParameter("database");
        if (database == null)
        	 throw new ServletException ("Propiedad database no especificada");
        this.setDatabase(database);
            //System.out.println("database: "+database);
//**************************************************
        String puerto=context.getInitParameter("puerto");
        if (puerto == null)
        	puerto = "";
        this.setPuerto(puerto);

//*****************************************************


        try {
            System.out.println("CONECTANDO");
            conectar();
               System.out.println("CONECTADO");
        } catch (SQLException e){
            e.printStackTrace();
              throw new ServletException (e.getMessage());
        }
     }

     /**
      * Invocado cuando el modelo se vincula a una sesion
      */
    @Override
      public void valueBound(HttpSessionBindingEvent event){
      }

     /**
      * Invocado cuando el modelo se quita de una sesion
      */
    @Override
      public void valueUnbound(HttpSessionBindingEvent event) {
        try {
            disconnect();
        } catch (SQLException ex) {
            Logger.getLogger(WebModel.class.getName()).log(Level.SEVERE, null, ex);
        }
      }
}

